/*
给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票，并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润，返回 0 。
输入：[7,1,5,3,6,4]
输出：5
*/

//! 单次循环
var maxProfit = function (prices) {
  let minPrice = Infinity;
  /*把 minPrice 初始化为一个“非常大”的值，保证数组里第一个遇到的 price 一定能把它替换掉 */
  let maxProfit = 0;

  for (let price of prices) {
    if (price < minPrice) minPrice = price;
    maxProfit = Math.max(maxProfit, price - minPrice);
  }

  console.log(maxProfit);
};

//! 双次循环 时间复杂度是 O(n^2) 超时
var maxProfit1 = function (prices) {
  let maxProfit = 0;
  for (let i = 0; i < prices.length; i++) {
    for (let j = i + 1; j < prices.length; j++) {
      maxProfit = Math.max(prices[j] - prices[i], maxProfit);
    }
  }
  return maxProfit;
};
